package org.algorithm.biubiu.wheel_1.数组.二月;

/***
 * 给你一个整数数组 nums 。nums 中，子数组的 范围 是子数组中最大元素和最小元素的差值。
 *
 * 返回 nums 中 所有 子数组范围的 和 。
 *
 * 子数组是数组中一个连续 非空 的元素序列。
 *
 * @author biubiu
 * @date 2022/3/04 13:30:01 星期五
 * uri:  https://leetcode-cn.com/problems/sum-of-subarray-ranges/
 * for for yyds
 */
public class 子数组范围和 {

    public static void main(String[] args) {
        int[] nums = {1,2,3};
        System.out.println(subArrayRanges(nums));
    }


    public static long subArrayRanges(int[] nums) {

        if(nums==null||nums.length==0){
            return -1;
        }
        long res = 0;
        for(int i = 0;i<nums.length;i++){
            int max= Integer.MIN_VALUE,min = Integer.MIN_VALUE;
            for(int j= i; j<nums.length;j++){
                max = Math.max(max,nums[j]);
                min = Math.min(min,nums[j]);
                res += (max-min);
            }

        }
        return res;
    }
}
